package com.example.demo1.mapper;

import com.example.demo1.entity.BaMenu;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface BaMenuMapper {
    int deleteByPrimaryKey(Integer menuId);

    int insert(BaMenu record);

    int insertSelective(BaMenu record);

    BaMenu selectByPrimaryKey(Integer menuId);

    int updateByPrimaryKeySelective(BaMenu record);

    int updateByPrimaryKey(BaMenu record);

    // 查询所有菜单信息
    List<BaMenu> findAll();

    // 查询用户权限菜单
    List<BaMenu> findUserRightMenus(Integer userId);

    // 异步验证菜单名称是否重复
    BaMenu validateMenuName(String menuName);

    // 异步验证菜单名称是否重复
    BaMenu validateMenuNameExSelf(@Param("menuName") String menuName, @Param("menuId") Integer menuId);

    // 查询菜单是否含有子菜单
    List<BaMenu> hasSunMenus(Integer menuId);

    // 验证该功能是否被菜单绑定
    List<BaMenu> functionUsedByMenus(String functionRight);
}